0 Prolog
↳1 PrologToPrologProblemTransformerProof (⇒, 89 ms)
↳2 Prolog
↳3 PrologToPiTRSProof (⇒, 0 ms)
↳4 PiTRS
↳5 DependencyPairsProof (⇔, 33 ms)
↳6 PiDP
↳7 DependencyGraphProof (⇔, 0 ms)
↳8 AND
↳9 PiDP
↳10 UsableRulesProof (⇔, 0 ms)
↳11 PiDP
↳12 PiDPToQDPProof (⇔, 12 ms)
↳13 QDP
↳14 QDPSizeChangeProof (⇔, 0 ms)
↳15 YES
↳16 PiDP
↳17 UsableRulesProof (⇔, 0 ms)
↳18 PiDP
↳19 PiDPToQDPProof (⇔, 0 ms)
↳20 QDP
↳21 MRRProof (⇔, 116 ms)
↳22 QDP
↳23 DependencyGraphProof (⇔, 0 ms)
↳24 TRUE
↳25 PiDP
↳26 UsableRulesProof (⇔, 0 ms)
↳27 PiDP
↳28 PiDPToQDPProof (⇔, 0 ms)
↳29 QDP
↳30 QDPSizeChangeProof (⇔, 0 ms)
↳31 YES
orderedB_in_g([]) → orderedB_out_g([])
orderedB_in_g(.(T3, [])) → orderedB_out_g(.(T3, []))
orderedB_in_g(.(s(T19), .(s(T20), T10))) → U2_g(T19, T20, T10, leA_in_gg(T19, T20))
leA_in_gg(s(T33), s(T34)) → U1_gg(T33, T34, leA_in_gg(T33, T34))
leA_in_gg(0, s(0)) → leA_out_gg(0, s(0))
leA_in_gg(0, 0) → leA_out_gg(0, 0)
U1_gg(T33, T34, leA_out_gg(T33, T34)) → leA_out_gg(s(T33), s(T34))
U2_g(T19, T20, T10, leA_out_gg(T19, T20)) → orderedB_out_g(.(s(T19), .(s(T20), T10)))
U2_g(T19, T20, T10, leA_out_gg(T19, T20)) → U3_g(T19, T20, T10, orderedB_in_g(.(s(T20), T10)))
orderedB_in_g(.(0, .(s(0), T10))) → U4_g(T10, orderedB_in_g(.(s(0), T10)))
orderedB_in_g(.(0, .(0, T10))) → U5_g(T10, orderedB_in_g(.(0, T10)))
U5_g(T10, orderedB_out_g(.(0, T10))) → orderedB_out_g(.(0, .(0, T10)))
U4_g(T10, orderedB_out_g(.(s(0), T10))) → orderedB_out_g(.(0, .(s(0), T10)))
U3_g(T19, T20, T10, orderedB_out_g(.(s(T20), T10))) → orderedB_out_g(.(s(T19), .(s(T20), T10)))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
orderedB_in_g([]) → orderedB_out_g([])
orderedB_in_g(.(T3, [])) → orderedB_out_g(.(T3, []))
orderedB_in_g(.(s(T19), .(s(T20), T10))) → U2_g(T19, T20, T10, leA_in_gg(T19, T20))
leA_in_gg(s(T33), s(T34)) → U1_gg(T33, T34, leA_in_gg(T33, T34))
leA_in_gg(0, s(0)) → leA_out_gg(0, s(0))
leA_in_gg(0, 0) → leA_out_gg(0, 0)
U1_gg(T33, T34, leA_out_gg(T33, T34)) → leA_out_gg(s(T33), s(T34))
U2_g(T19, T20, T10, leA_out_gg(T19, T20)) → orderedB_out_g(.(s(T19), .(s(T20), T10)))
U2_g(T19, T20, T10, leA_out_gg(T19, T20)) → U3_g(T19, T20, T10, orderedB_in_g(.(s(T20), T10)))
orderedB_in_g(.(0, .(s(0), T10))) → U4_g(T10, orderedB_in_g(.(s(0), T10)))
orderedB_in_g(.(0, .(0, T10))) → U5_g(T10, orderedB_in_g(.(0, T10)))
U5_g(T10, orderedB_out_g(.(0, T10))) → orderedB_out_g(.(0, .(0, T10)))
U4_g(T10, orderedB_out_g(.(s(0), T10))) → orderedB_out_g(.(0, .(s(0), T10)))
U3_g(T19, T20, T10, orderedB_out_g(.(s(T20), T10))) → orderedB_out_g(.(s(T19), .(s(T20), T10)))
ORDEREDB_IN_G(.(s(T19), .(s(T20), T10))) → U2_G(T19, T20, T10, leA_in_gg(T19, T20))
ORDEREDB_IN_G(.(s(T19), .(s(T20), T10))) → LEA_IN_GG(T19, T20)
LEA_IN_GG(s(T33), s(T34)) → U1_GG(T33, T34, leA_in_gg(T33, T34))
LEA_IN_GG(s(T33), s(T34)) → LEA_IN_GG(T33, T34)
U2_G(T19, T20, T10, leA_out_gg(T19, T20)) → U3_G(T19, T20, T10, orderedB_in_g(.(s(T20), T10)))
U2_G(T19, T20, T10, leA_out_gg(T19, T20)) → ORDEREDB_IN_G(.(s(T20), T10))
ORDEREDB_IN_G(.(0, .(s(0), T10))) → U4_G(T10, orderedB_in_g(.(s(0), T10)))
ORDEREDB_IN_G(.(0, .(s(0), T10))) → ORDEREDB_IN_G(.(s(0), T10))
ORDEREDB_IN_G(.(0, .(0, T10))) → U5_G(T10, orderedB_in_g(.(0, T10)))
ORDEREDB_IN_G(.(0, .(0, T10))) → ORDEREDB_IN_G(.(0, T10))
orderedB_in_g([]) → orderedB_out_g([])
orderedB_in_g(.(T3, [])) → orderedB_out_g(.(T3, []))
orderedB_in_g(.(s(T19), .(s(T20), T10))) → U2_g(T19, T20, T10, leA_in_gg(T19, T20))
leA_in_gg(s(T33), s(T34)) → U1_gg(T33, T34, leA_in_gg(T33, T34))
leA_in_gg(0, s(0)) → leA_out_gg(0, s(0))
leA_in_gg(0, 0) → leA_out_gg(0, 0)
U1_gg(T33, T34, leA_out_gg(T33, T34)) → leA_out_gg(s(T33), s(T34))
U2_g(T19, T20, T10, leA_out_gg(T19, T20)) → orderedB_out_g(.(s(T19), .(s(T20), T10)))
U2_g(T19, T20, T10, leA_out_gg(T19, T20)) → U3_g(T19, T20, T10, orderedB_in_g(.(s(T20), T10)))
orderedB_in_g(.(0, .(s(0), T10))) → U4_g(T10, orderedB_in_g(.(s(0), T10)))
orderedB_in_g(.(0, .(0, T10))) → U5_g(T10, orderedB_in_g(.(0, T10)))
U5_g(T10, orderedB_out_g(.(0, T10))) → orderedB_out_g(.(0, .(0, T10)))
U4_g(T10, orderedB_out_g(.(s(0), T10))) → orderedB_out_g(.(0, .(s(0), T10)))
U3_g(T19, T20, T10, orderedB_out_g(.(s(T20), T10))) → orderedB_out_g(.(s(T19), .(s(T20), T10)))
ORDEREDB_IN_G(.(s(T19), .(s(T20), T10))) → U2_G(T19, T20, T10, leA_in_gg(T19, T20))
ORDEREDB_IN_G(.(s(T19), .(s(T20), T10))) → LEA_IN_GG(T19, T20)
LEA_IN_GG(s(T33), s(T34)) → U1_GG(T33, T34, leA_in_gg(T33, T34))
LEA_IN_GG(s(T33), s(T34)) → LEA_IN_GG(T33, T34)
U2_G(T19, T20, T10, leA_out_gg(T19, T20)) → U3_G(T19, T20, T10, orderedB_in_g(.(s(T20), T10)))
U2_G(T19, T20, T10, leA_out_gg(T19, T20)) → ORDEREDB_IN_G(.(s(T20), T10))
ORDEREDB_IN_G(.(0, .(s(0), T10))) → U4_G(T10, orderedB_in_g(.(s(0), T10)))
ORDEREDB_IN_G(.(0, .(s(0), T10))) → ORDEREDB_IN_G(.(s(0), T10))
ORDEREDB_IN_G(.(0, .(0, T10))) → U5_G(T10, orderedB_in_g(.(0, T10)))
ORDEREDB_IN_G(.(0, .(0, T10))) → ORDEREDB_IN_G(.(0, T10))
orderedB_in_g([]) → orderedB_out_g([])
orderedB_in_g(.(T3, [])) → orderedB_out_g(.(T3, []))
orderedB_in_g(.(s(T19), .(s(T20), T10))) → U2_g(T19, T20, T10, leA_in_gg(T19, T20))
leA_in_gg(s(T33), s(T34)) → U1_gg(T33, T34, leA_in_gg(T33, T34))
leA_in_gg(0, s(0)) → leA_out_gg(0, s(0))
leA_in_gg(0, 0) → leA_out_gg(0, 0)
U1_gg(T33, T34, leA_out_gg(T33, T34)) → leA_out_gg(s(T33), s(T34))
U2_g(T19, T20, T10, leA_out_gg(T19, T20)) → orderedB_out_g(.(s(T19), .(s(T20), T10)))
U2_g(T19, T20, T10, leA_out_gg(T19, T20)) → U3_g(T19, T20, T10, orderedB_in_g(.(s(T20), T10)))
orderedB_in_g(.(0, .(s(0), T10))) → U4_g(T10, orderedB_in_g(.(s(0), T10)))
orderedB_in_g(.(0, .(0, T10))) → U5_g(T10, orderedB_in_g(.(0, T10)))
U5_g(T10, orderedB_out_g(.(0, T10))) → orderedB_out_g(.(0, .(0, T10)))
U4_g(T10, orderedB_out_g(.(s(0), T10))) → orderedB_out_g(.(0, .(s(0), T10)))
U3_g(T19, T20, T10, orderedB_out_g(.(s(T20), T10))) → orderedB_out_g(.(s(T19), .(s(T20), T10)))
LEA_IN_GG(s(T33), s(T34)) → LEA_IN_GG(T33, T34)
orderedB_in_g([]) → orderedB_out_g([])
orderedB_in_g(.(T3, [])) → orderedB_out_g(.(T3, []))
orderedB_in_g(.(s(T19), .(s(T20), T10))) → U2_g(T19, T20, T10, leA_in_gg(T19, T20))
leA_in_gg(s(T33), s(T34)) → U1_gg(T33, T34, leA_in_gg(T33, T34))
leA_in_gg(0, s(0)) → leA_out_gg(0, s(0))
leA_in_gg(0, 0) → leA_out_gg(0, 0)
U1_gg(T33, T34, leA_out_gg(T33, T34)) → leA_out_gg(s(T33), s(T34))
U2_g(T19, T20, T10, leA_out_gg(T19, T20)) → orderedB_out_g(.(s(T19), .(s(T20), T10)))
U2_g(T19, T20, T10, leA_out_gg(T19, T20)) → U3_g(T19, T20, T10, orderedB_in_g(.(s(T20), T10)))
orderedB_in_g(.(0, .(s(0), T10))) → U4_g(T10, orderedB_in_g(.(s(0), T10)))
orderedB_in_g(.(0, .(0, T10))) → U5_g(T10, orderedB_in_g(.(0, T10)))
U5_g(T10, orderedB_out_g(.(0, T10))) → orderedB_out_g(.(0, .(0, T10)))
U4_g(T10, orderedB_out_g(.(s(0), T10))) → orderedB_out_g(.(0, .(s(0), T10)))
U3_g(T19, T20, T10, orderedB_out_g(.(s(T20), T10))) → orderedB_out_g(.(s(T19), .(s(T20), T10)))
LEA_IN_GG(s(T33), s(T34)) → LEA_IN_GG(T33, T34)
LEA_IN_GG(s(T33), s(T34)) → LEA_IN_GG(T33, T34)
From the DPs we obtained the following set of size-change graphs:
U2_G(T19, T20, T10, leA_out_gg(T19, T20)) → ORDEREDB_IN_G(.(s(T20), T10))
ORDEREDB_IN_G(.(s(T19), .(s(T20), T10))) → U2_G(T19, T20, T10, leA_in_gg(T19, T20))
orderedB_in_g([]) → orderedB_out_g([])
orderedB_in_g(.(T3, [])) → orderedB_out_g(.(T3, []))
orderedB_in_g(.(s(T19), .(s(T20), T10))) → U2_g(T19, T20, T10, leA_in_gg(T19, T20))
leA_in_gg(s(T33), s(T34)) → U1_gg(T33, T34, leA_in_gg(T33, T34))
leA_in_gg(0, s(0)) → leA_out_gg(0, s(0))
leA_in_gg(0, 0) → leA_out_gg(0, 0)
U1_gg(T33, T34, leA_out_gg(T33, T34)) → leA_out_gg(s(T33), s(T34))
U2_g(T19, T20, T10, leA_out_gg(T19, T20)) → orderedB_out_g(.(s(T19), .(s(T20), T10)))
U2_g(T19, T20, T10, leA_out_gg(T19, T20)) → U3_g(T19, T20, T10, orderedB_in_g(.(s(T20), T10)))
orderedB_in_g(.(0, .(s(0), T10))) → U4_g(T10, orderedB_in_g(.(s(0), T10)))
orderedB_in_g(.(0, .(0, T10))) → U5_g(T10, orderedB_in_g(.(0, T10)))
U5_g(T10, orderedB_out_g(.(0, T10))) → orderedB_out_g(.(0, .(0, T10)))
U4_g(T10, orderedB_out_g(.(s(0), T10))) → orderedB_out_g(.(0, .(s(0), T10)))
U3_g(T19, T20, T10, orderedB_out_g(.(s(T20), T10))) → orderedB_out_g(.(s(T19), .(s(T20), T10)))
U2_G(T19, T20, T10, leA_out_gg(T19, T20)) → ORDEREDB_IN_G(.(s(T20), T10))
ORDEREDB_IN_G(.(s(T19), .(s(T20), T10))) → U2_G(T19, T20, T10, leA_in_gg(T19, T20))
leA_in_gg(s(T33), s(T34)) → U1_gg(T33, T34, leA_in_gg(T33, T34))
leA_in_gg(0, s(0)) → leA_out_gg(0, s(0))
leA_in_gg(0, 0) → leA_out_gg(0, 0)
U1_gg(T33, T34, leA_out_gg(T33, T34)) → leA_out_gg(s(T33), s(T34))
U2_G(T19, T20, T10, leA_out_gg(T19, T20)) → ORDEREDB_IN_G(.(s(T20), T10))
ORDEREDB_IN_G(.(s(T19), .(s(T20), T10))) → U2_G(T19, T20, T10, leA_in_gg(T19, T20))
leA_in_gg(s(T33), s(T34)) → U1_gg(T33, T34, leA_in_gg(T33, T34))
leA_in_gg(0, s(0)) → leA_out_gg(0, s(0))
leA_in_gg(0, 0) → leA_out_gg(0, 0)
U1_gg(T33, T34, leA_out_gg(T33, T34)) → leA_out_gg(s(T33), s(T34))
leA_in_gg(x0, x1)
U1_gg(x0, x1, x2)
ORDEREDB_IN_G(.(s(T19), .(s(T20), T10))) → U2_G(T19, T20, T10, leA_in_gg(T19, T20))
POL(.(x1, x2)) = 1 + x1 + x2
POL(0) = 0
POL(ORDEREDB_IN_G(x1)) = 2·x1
POL(U1_gg(x1, x2, x3)) = 2·x1 + 2·x2 + x3
POL(U2_G(x1, x2, x3, x4)) = 2 + x1 + 2·x2 + 2·x3 + x4
POL(leA_in_gg(x1, x2)) = 2·x1 + 2·x2
POL(leA_out_gg(x1, x2)) = 2·x1 + 2·x2
POL(s(x1)) = 2·x1
U2_G(T19, T20, T10, leA_out_gg(T19, T20)) → ORDEREDB_IN_G(.(s(T20), T10))
leA_in_gg(s(T33), s(T34)) → U1_gg(T33, T34, leA_in_gg(T33, T34))
leA_in_gg(0, s(0)) → leA_out_gg(0, s(0))
leA_in_gg(0, 0) → leA_out_gg(0, 0)
U1_gg(T33, T34, leA_out_gg(T33, T34)) → leA_out_gg(s(T33), s(T34))
leA_in_gg(x0, x1)
U1_gg(x0, x1, x2)
ORDEREDB_IN_G(.(0, .(0, T10))) → ORDEREDB_IN_G(.(0, T10))
orderedB_in_g([]) → orderedB_out_g([])
orderedB_in_g(.(T3, [])) → orderedB_out_g(.(T3, []))
orderedB_in_g(.(s(T19), .(s(T20), T10))) → U2_g(T19, T20, T10, leA_in_gg(T19, T20))
leA_in_gg(s(T33), s(T34)) → U1_gg(T33, T34, leA_in_gg(T33, T34))
leA_in_gg(0, s(0)) → leA_out_gg(0, s(0))
leA_in_gg(0, 0) → leA_out_gg(0, 0)
U1_gg(T33, T34, leA_out_gg(T33, T34)) → leA_out_gg(s(T33), s(T34))
U2_g(T19, T20, T10, leA_out_gg(T19, T20)) → orderedB_out_g(.(s(T19), .(s(T20), T10)))
U2_g(T19, T20, T10, leA_out_gg(T19, T20)) → U3_g(T19, T20, T10, orderedB_in_g(.(s(T20), T10)))
orderedB_in_g(.(0, .(s(0), T10))) → U4_g(T10, orderedB_in_g(.(s(0), T10)))
orderedB_in_g(.(0, .(0, T10))) → U5_g(T10, orderedB_in_g(.(0, T10)))
U5_g(T10, orderedB_out_g(.(0, T10))) → orderedB_out_g(.(0, .(0, T10)))
U4_g(T10, orderedB_out_g(.(s(0), T10))) → orderedB_out_g(.(0, .(s(0), T10)))
U3_g(T19, T20, T10, orderedB_out_g(.(s(T20), T10))) → orderedB_out_g(.(s(T19), .(s(T20), T10)))
ORDEREDB_IN_G(.(0, .(0, T10))) → ORDEREDB_IN_G(.(0, T10))
ORDEREDB_IN_G(.(0, .(0, T10))) → ORDEREDB_IN_G(.(0, T10))
From the DPs we obtained the following set of size-change graphs: